package com.oa.service;

import com.github.pagehelper.Page;
import com.oa.pojo.Notify;
import com.oa.pojo.User;
import com.oa.utils.EntityException;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.SQLException;
import java.util.Map;

public interface NotifyService {
    // 处理文件上传
    Map<String, String> fileUpload(CommonsMultipartFile file) throws IOException, EntityException;

    // 处理下载文件

    /**
     * 新增公告
     * map:文件的一些信息（文件名、文件大小）
     * userId:上传者ID
     * notifyName:公告名
     * note:公告注备
     */
    void addNotify(Map<String, String> map, String userId, String notifyName, String note) throws Exception;

    // 获取notify list
    Page<Notify> getNotifyList(int page, int limit, Map data);

    // 下载公告
    String fileDownloads(HttpServletRequest request, HttpServletResponse response, String notifyId) throws Exception;

    // 根据id获取公告名称notifyName
    String getFileNameById(String notifyId);

    // 更新下载次数
    int growDownloadCnt(String notifyId);

    // 获取一条数据
    Notify getNotify(String notifyId);

    // 修改数据
    void updateNotify(Notify notify) throws Exception;

    // 删除公告
    void delNotify(String notifyId) throws EntityException;
}
